Moved functioning implementations to the .m