Copyright 2014 Andrey Sitnik <andrey@sitnik.ru> and other contributors