removed default values
added interface