Implemented the most obvious functions