variables parse correctly. TODO: loops