Answer Set Programming (ASP) is a powerful modelling formalism that is very efficient for solving combinatorial problems. This work extends the state-of-the-art in theory and practice of ASP. It has two parts. The first part looks at the intersection of ASP and Constraint Programming and proposes theory and algorithms for implementing Bound Founded ASP, which is a generalization of both ASP and CP. The second part discusses model counting in the context of ASP.