Casmo api

Pull request replacing #73 to account for asymmetric assemblies
Add some empty lines in between some of these if-else statements to break up this code to make it easier to read.