Implement everything that was needed