added obstacle, agent into map

code still unoptimized, unreadable, undefendable. unwhatever. i will fix
it soon