design decisions