refactored; multiple declarations in progress
parser works