extract dots into seperate functions.
press space to regenerate.