I'll refactor this ctor later, to builder. For now it's fine.