Refactor
Added auto initializing