added type hint as defined abstract model