Synced with Greg's branch
Further syncing with Greg's branch
Final cleanup for merging