updated to be autoloadable by composer