update procedure (in progress)
add new atomic procedures
rename procedure to make them more atomic
fix last bugs and clean code