The document describes an algorithm for constructing Bayesian networks from data. The algorithm has three phases: drafting, thickening, and thinning. In the drafting phase, node pairs are ordered by mutual information and connected with arcs. Thickening adds arcs when nodes cannot be separated. Thinning examines arcs using conditional independence tests and removes arcs where nodes are independent. The algorithm was tested on an ALARM Bayesian network with 37 nodes and correctly learned the network structure from data in all three versions of the network.