lots of changes
added classes