Add rest of basic functions, add boilerplate for f