Refactor: rewrite constructor to later allow other inputs