internal design decisions