Rebased GarNet branch
Created by: yiiyama
This PR supersedes #188 . Same functionality is being PRed but I've manually rebased the branch to the latest master.
Created by: yiiyama
This PR supersedes #188 . Same functionality is being PRed but I've manually rebased the branch to the latest master.