Blueprint

Refactor using Blueprint is finished. Also adds a few new features and improves some other features