a bit better, hyphens need work
able to use as library