Implemented most things.