devided binary into shared lib + binary, so shared lib can be reused