design implementation ready for testing