added join for syncing with async code
added join test
added tests with Q promisses
added getLineCount with promise return + tests