refactoring to only use generic until remote api changes are made