Put in IC2 api for future integration. Big commit, sorry