Allows for custom component constructor