!Refactoring __init__ slightly