Atmire 2195

Pull Request also includes support for 

atmire-1584-1
atmire-2288
atmire-2278
atmire-1667-1
atmire-1694

Each are a separate branch, if issues do arise, we can provide separate pull requests for each feature request