created interface and implementation for projet