start is pretty much fully abstracted (elements)