Refactor __init__ somewhat, closes #3