Implemented required functionality