added unit tests & ADL interface