various improvements

- more changes for callback pattern #3
- minor design update