implementing provided design