Broke out design into separate files