refactored for fantasy land compliance