add typehints
put construct stuff in __construct