updated to support literals