Initial commit
merged changes from disolovyov
add: credit to disolovyov