add extra error handling and null literal handling
fix up constructors