split ABI code into separate files
add license information for ABI implemenation