added interfaces, edited controller and index