start of reimplimenting std lib