use metaprogramming
refector to_slug
allow object to keep its own slug
add readme
update gem spec