Builder and abstract possibility

Better API for usage