Implemented it all! I hope