learning types and memory
flow control