Casmo API

Pull request replacing #73 to account for asymmetric assemblies
Done :+1: :8ball: