Implemented interfaces, add test