adds prototype
cleans up