singleton, many and one can take an optionally init block as argument
remove delegate from core
bump version