added external libraries
added configurable parameters