merge changes from original foirk