lots of changes, more refined design