refactor: fops as object map instead of array