Implimenting interfaces WIP