seperate boilerplate from actual library
changed version for a clean cut