abilities: initial implementation

Each project can detect it's abilities to allow for custom methods to act differently.