Exposed constructor