Refactor payment engines

This remove the need of hashes with lambda. :heart: :heart: