Modified to closely match work done by VertNet