messing with pointers
back to basic implementation
it's a library now