long version

long version