further impl
main pipeline implemented