update abstract classes
update tracker
add js library
add factory