used Abels' parens implementation