implementation and design