replace (id) returns with (instancetype) to help intellisense